home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-users-of-norman / CUON_14_(11-1984).d64 / dir list trk_sec (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  4KB  |  204 lines

  1. 100 REM   INITIALIZATION
  2. 101 :
  3. 102 DIM D$(255), T$(4), E$(31)
  4. 103 T$(0)="D":T$(1)="S":T$(2)="P"
  5. 104 T$(3)="U":T$(4)="R":DI$="":ID$=""
  6. 105 POKE53280,6:POKE53281,6
  7. 106 PRINTCHR$(5)
  8. 107 S$="[160]":NL$=CHR$(0):DT=18:DB=0:P=3
  9. 108 :
  10. 109 REM   HOUSEKEEPING
  11. 110 :
  12. 111 OPEN15,8,15,"I0":GOSUB209:PRINT"[147];"
  13. 112 PRINT"[147]DO YOU WANT HARDCOPY? ";
  14. 113 GOSUB246:IFW$="Y"THENP=4
  15. 114 IFP<>4THEN129
  16. 115 PRINT"SMART ASCII ACTIVE? ";
  17. 116 GOSUB246:IFW$="N"THEN119
  18. 117 X=PEEK(55)+256*PEEK(56)
  19. 118 POKEX,0:POKEX+1,0
  20. 119 PRINT"EPSON TYPE PRINTER? ";
  21. 120 GOSUB246:IFW$="N"THEN129
  22. 121 PRINT"COMPRESSED FORMAT? ";
  23. 122 GOSUB246
  24. 123 IFW$="N"THENW$=CHR$(18)
  25. 124 IFW$="Y"THENW$=CHR$(15)
  26. 125 OPEN4,4:PRINT#4,W$:CLOSE4
  27. 126 :
  28. 127 REM   OPEN FILES
  29. 128 :
  30. 129 OPEN4,P:GOSUB209
  31. 130 OPEN5,8,5,"#1":GOSUB209
  32. 131 OPEN6,8,6,"#2":GOSUB209
  33. 132 :
  34. 133 REM   GET DISK TITLE AND ID
  35. 134 :
  36. 135 GOSUB201
  37. 136 FORX=144TO160
  38. 137 DI$=DI$+D$(X):NEXT
  39. 138 FORX=162TO163
  40. 139 ID$=ID$+D$(X):NEXT:PRINT"[147]";
  41. 140 :
  42. 141 REM   PRINT HEADER INFORMATION
  43. 142 :
  44. 143 PRINT#4,DI$"T #   LOCATIONS   LOAD"
  45. 144 PRINT#4,"ID="ID$"            Y OF  1ST   2ND   ADDR"
  46. 145 PRINT#4,"ENTRY NAME       P BK TK/SC TK/SC LO/HI":PRINT#4
  47. 146 GOSUB201
  48. 147 :
  49. 148 REM   LOOP Z - EACH DIRECTORY ENTRY
  50. 149 REM   LOOP Y - STORE IN ARRAY E$
  51. 150 :
  52. 151 FORZ=0TO7:N$=""
  53. 152 FORY=0TO31
  54. 153 E$(Y)=D$(Z*32+Y):NEXT
  55. 154 :
  56. 155 REM   FORMAT NAME AND FILE TYPE
  57. 156 :
  58. 157 FORX=5TO20:N$=N$+E$(X):NEXT
  59. 158 W$=E$(2)
  60. 159 T=ASC(W$)AND127
  61. 160 :
  62. 161 REM   FORMAT NUMBER OF BLOCKS USED
  63. 162 :
  64. 163 W$=E$(30)
  65. 164 LO=ASC(W$)
  66. 165 W$=E$(31)
  67. 166 HI=ASC(W$)
  68. 167 BK=HI*16+LO
  69. 168 W=BK:GOSUB225:BK$=S$+W$
  70. 169 :
  71. 170 REM   FORMAT 1ST TRACK AND SECTOR
  72. 171 :
  73. 172 W$=E$(3)
  74. 173 TK=ASC(W$):W=TK:GOSUB225:TK$=S$+W$
  75. 174 W$=E$(4)
  76. 175 SC=ASC(W$):W=SC:GOSUB225:SC$=S$+W$
  77. 176 IFTK=0ANDSC=0THEN196
  78. 177 PRINT#4,N$;S$;T$(T);BK$;TK$;SC$;
  79. 178 :
  80. 179 REM   READ THAT TRACK AND SECTOR
  81. 180 :
  82. 181 PRINT#15,"U1:";6;0;TK;SC
  83. 182 GOSUB209
  84. 183 :
  85. 184 REM   FORMAT 1ST FOUR BYTES
  86. 185 REM   1&2 NEXT TRACK AND SECTOR
  87. 186 REM   3&4 LO/HI LOAD ADDRESS
  88. 187 :
  89. 188 FORX=1TO4
  90. 189 GET#6,W$:V=ASC(W$+CHR$(0))
  91. 190 HI=INT(V/16):LO=V-HI*16
  92. 191 PRINT#4,S$MID$(WX$,HI+1,1);
  93. 192 PRINT#4,MID$(WX$,LO+1,1);
  94. 193 NEXT
  95. 194 PRINT#4
  96. 195 NEXT
  97. 196 IFDB<>255THEN146
  98. 197 GOTO217
  99. 198 :
  100. 199 REM   READ TRACK AND SECTOR
  101. 200 :
  102. 201 PRINT#15,"U1:";5;0;DT;DB:GOSUB209
  103. 202 FORZ=0TO255
  104. 203 GET#5,W$:IFW$=""THENW$=NL$
  105. 204 D$(Z)=W$:NEXT
  106. 205 DT=ASC(D$(0)):DB=ASC(D$(1)):RETURN
  107. 206 :
  108. 207 REM   CHECK DISK STATUS
  109. 208 :
  110. 209 INPUT#15,EN,EM$,ET,ES
  111. 210 IFEN=0THENRETURN
  112. 211 PRINT#4,"ERROR ";EN;EM$;ET;ES
  113. 212 PRINT#4
  114. 213 PRINT#4,"ERROR ";EN;EM$;ET;ES
  115. 214 :
  116. 215 REM   ALL DONE
  117. 216 :
  118. 217 PRINT#4:PRINT#4:CLOSE4
  119. 218 CLOSE5:CLOSE6:PRINT#15,"IU:":CLOSE15
  120. 219 PRINT"RUN AGAIN? ";:GOSUB246
  121. 220 IFW$="Y"THENCLR:GOTO100
  122. 221 PRINT"[147]";:END
  123. 222 :
  124. 223 REM   DEC TO HEX (ARG=W RESULT=W$)
  125. 224 :
  126. 225 WX$="0123456789ABCDEF":W$=""
  127. 226 IFW<255THEN230
  128. 227 W1=INT(W/4096)
  129. 228 W2=INT((W-W1*4096)/256)
  130. 229 GOSUB231:W=W-W1*4096-W2*256
  131. 230 W1=INT(W/16):W2=INT(W-W1*16)
  132. 231 W$=W$+MID$(WX$,W1+1,1)
  133. 232 W$=W$+MID$(WX$,W2+1,1)
  134. 233 RETURN
  135. 234 :
  136. 235 REM   HEX TO DEC (ARG=W$ RESULT=W)
  137. 236 :
  138. 237 W1=LEN(W$):W=0:IFW$=""THEN242
  139. 238 FORW2=W1TO1STEP-1
  140. 239 W3=ASC(MID$(W$,W2,1))
  141. 240 W4=W3-48:IFW4>9THENW4=W4-7
  142. 241 W=W+W4*16^(W1-W2):NEXT
  143. 242 RETURN
  144. 243 :
  145. 244 REM   GET (Y)ES OR (N)O
  146. 245 :
  147. 246 GETW$:IFW$=""THEN246
  148. 247 IFW$<>"Y"ANDW$<>"N"THEN246
  149. 248 PRINTW$:RETURN
  150. 249 :
  151. 250 REM   GET NUMBERIC (RESULT=W)
  152. 251 :
  153. 252 W$="":W1$=""
  154. 253 GETW$:IFW$=""THEN253
  155. 254 IFW$=CHR$(13)THEN258
  156. 255 W=ASC(W$)
  157. 256 IFW<48ORW>57THEN253
  158. 257 W1$=W1$+W$:PRINT#W$;:GOTO253
  159. 258 W=VAL(W1$):PRINT#:RETURN
  160. 259 :
  161. 260 REM   GET HEX NUMBER (RESULT=W$)
  162. 261 :
  163. 262 W$="":W1$=""
  164. 263 GETW$:IFW$=""THEN263
  165. 264 IFW$=CHR$(13)THEN268
  166. 265 W=ASC(W$):IFW<48ORW>70THEN263
  167. 266 W=W-48:IFW>9THENW=W-7
  168. 267 W1$=W1$+W$:PRINT#W$;:GOTO263
  169. 268 IFLEN(W1$)>4THENW1$=RIGHT$(W1$,4)
  170. 269 W$=W1$:PRINT#:RETURN
  171. 270 :
  172. 271 REM  TITLE:   DIRECTORY LISTER
  173. 272 REM  AUTHOR:  B. SNEED
  174. 273 REM  DATE:    04/15/83
  175. 274 :
  176. 275 REM  THIS PGM WILL LIST (SCREEN OR
  177. 276 REM  PRINTER) ALL FILES ON A DISK
  178. 277 REM  THAT STILL HAVE ENTRIES IN THE
  179. 278 REM  DIRECTORY.  IT SHOWS THE TYPE
  180. 279 REM  OF FILE, NUMBER OF BLOCKS, THE
  181. 280 REM  TRACK AND SECTOR OF THE FIRST
  182. 281 REM  TWO BLOCKS, AND FINALLY THE
  183. 282 REM  MOST IMPORTANT OF ALL ITEMS
  184. 283 REM   "THE FILE LOAD ADDRESS"
  185. 284 :
  186. 285 REM  PLEASE NOTE THAT FILES THAT
  187. 286 REM  HAVE BEEN SCRATCHED AND NOT
  188. 287 REM  WRITTEN OVER ARE INCLUDED!
  189. 288 :
  190. 289 REM  FILE TYPES ARE:
  191. 290 :
  192. 291 REM    D = DELETED
  193. 292 REM    S = SEQUENTIAL
  194. 293 REM    P = PROGRAM
  195. 294 REM    U = USER
  196. 295 REM    R = RELATIVE
  197. 296 :
  198. 297 REM  SEE PAGE 56 OF THE VIC-1541
  199. 298 REM  SINGLE DRIVE FLOPPY DISK
  200. 299 REM  USER'S MANUAL.  TO SPEED UP
  201. 300 REM  EXECUTION AND LOAD TIME, YOU
  202. 301 REM  CAN USE VIC-TREE TO DELETE ALL
  203. 302 REM  REMARKS AND LINES WITH : ONLY.
  204.